package org.csu.mybigpro.service;

import org.springframework.web.multipart.MultipartFile;

public interface MinioService {
    /**
     * 上传文件到MinIO的默认桶
     * @param file 要上传的文件
     * @return 上传成功后的文件URL
     * @throws Exception 上传过程中可能发生的异常
     */
    String uploadFile(MultipartFile file) throws Exception;

    /**
     * 从MinIO的完整URL中提取对象名称。
     * MinIO URL格式通常为: http://endpoint:port/bucketName/objectName
     * @param fileUrl 文件的完整URL
     * @return 提取出的对象名称，如果URL无效则返回null
     */
    String getObjectNameFromUrl(String fileUrl);

    /**
     * 从MinIO中删除文件。
     * @param objectName 要删除的文件对象名称
     * @throws Exception 删除过程中可能发生的异常
     */
    void deleteFile(String objectName) throws Exception;
}